// Bounce Animation -----------------------------
// ----------------------------------------------

// Bounce simple 
.bounce{
  animation: bounceAnim linear 1s;
  animation-iteration-count: 1;
  transform-origin: 50% 50%;
  -webkit-animation: bounceAnim linear 1s;
  -webkit-animation-iteration-count: 1;
  -webkit-transform-origin: 50% 50%;
  -moz-animation: bounceAnim linear 1s;
  -moz-animation-iteration-count: 1;
  -moz-transform-origin: 50% 50%;
  -o-animation: bounceAnim linear 1s;
  -o-animation-iteration-count: 1;
  -o-transform-origin: 50% 50%;
  -ms-animation: bounceAnim linear 1s;
  -ms-animation-iteration-count: 1;
  -ms-transform-origin: 50% 50%;
}

@keyframes bounceAnim{
  0% {
    opacity:0;
    transform:  scaleX(1.00) scaleY(1.00) ;
  }
  20% {
    opacity:0.2;
    transform:  scaleX(0.60) scaleY(0.60) ;
  }
  40% {
    opacity:0.41;
    transform:  scaleX(0.90) scaleY(0.90) ;
  }
  60% {
    opacity:0.7;
    transform:  scaleX(1.10) scaleY(1.10) ;
  }
  80% {
    opacity:0.9;
    transform:  scaleX(1.40) scaleY(1.40) ;
  }
  100% {
    opacity:1;
    transform:  scaleX(1.00) scaleY(1.00) ;
  }
}

@-moz-keyframes bounceAnim{
  0% {
    opacity:0;
    -moz-transform:  scaleX(1.00) scaleY(1.00) ;
  }
  20% {
    opacity:0.2;
    -moz-transform:  scaleX(0.60) scaleY(0.60) ;
  }
  40% {
    opacity:0.41;
    -moz-transform:  scaleX(0.90) scaleY(0.90) ;
  }
  60% {
    opacity:0.7;
    -moz-transform:  scaleX(1.10) scaleY(1.10) ;
  }
  80% {
    opacity:0.9;
    -moz-transform:  scaleX(1.40) scaleY(1.40) ;
  }
  100% {
    opacity:1;
    -moz-transform:  scaleX(1.00) scaleY(1.00) ;
  }
}

@-webkit-keyframes bounceAnim {
  0% {
    opacity:0;
    -webkit-transform:  scaleX(1.00) scaleY(1.00) ;
  }
  20% {
    opacity:0.2;
    -webkit-transform:  scaleX(0.60) scaleY(0.60) ;
  }
  40% {
    opacity:0.41;
    -webkit-transform:  scaleX(0.90) scaleY(0.90) ;
  }
  60% {
    opacity:0.7;
    -webkit-transform:  scaleX(1.10) scaleY(1.10) ;
  }
  80% {
    opacity:0.9;
    -webkit-transform:  scaleX(1.40) scaleY(1.40) ;
  }
  100% {
    opacity:1;
    -webkit-transform:  scaleX(1.00) scaleY(1.00) ;
  }
}

@-o-keyframes bounceAnim {
  0% {
    opacity:0;
    -o-transform:  scaleX(1.00) scaleY(1.00) ;
  }
  20% {
    opacity:0.2;
    -o-transform:  scaleX(0.60) scaleY(0.60) ;
  }
  40% {
    opacity:0.5;
    -o-transform:  scaleX(0.90) scaleY(0.90) ;
  }
  60% {
    opacity:0.8;
    -o-transform:  scaleX(1.10) scaleY(1.10) ;
  }
  80% {
    opacity:0.9;
    -o-transform:  scaleX(1.40) scaleY(1.40) ;
  }
  100% {
    opacity:1;
    -o-transform:  scaleX(1.00) scaleY(1.00) ;
  }
}

@-ms-keyframes bounceAnim {
  0% {
    opacity:0;
    -ms-transform:  scaleX(1.00) scaleY(1.00) ;
  }
  20% {
    opacity:0.2;
    -ms-transform:  scaleX(0.60) scaleY(0.60) ;
  }
  40% {
    opacity:0.41;
    -ms-transform:  scaleX(0.90) scaleY(0.90) ;
  }
  60% {
    opacity:0.7;
    -ms-transform:  scaleX(1.10) scaleY(1.10) ;
  }
  80% {
    opacity:0.9;
    -ms-transform:  scaleX(1.40) scaleY(1.40) ;
  }
  100% {
    opacity:1;
    -ms-transform:  scaleX(1.00) scaleY(1.00) ;
  }
}
// Bounce Out
.bounceOut {
  animation: bounceOutAnim linear 1s;
  animation-iteration-count: 1;
  transform-origin: 50% 50%;
  -webkit-animation: bounceOutAnim linear 1s;
  -webkit-animation-iteration-count: 1;
  -webkit-transform-origin: 50% 50%;
  -moz-animation: bounceOutAnim linear 1s;
  -moz-animation-iteration-count: 1;
  -moz-transform-origin: 50% 50%;
  -o-animation: bounceOutAnim linear 1s;
  -o-animation-iteration-count: 1;
  -o-transform-origin: 50% 50%;
  -ms-animation: bounceOutAnim linear 1s;
  -ms-animation-iteration-count: 1;
  -ms-transform-origin: 50% 50%;
}

@keyframes bounceOutAnim{
  0% {
    opacity:1;
    transform:  scaleX(1.00) scaleY(1.00) ;
  }
  25% {
    opacity:1;
    transform:  scaleX(0.95) scaleY(0.95) ;
  }
  50% {
    opacity:1;
    transform:  scaleX(1.10) scaleY(1.10) ;
  }
  100% {
    opacity:0;
    transform:  scaleX(0.30) scaleY(0.30) ;
  }
}

@-moz-keyframes bounceOutAnim{
  0% {
    opacity:1;
    -moz-transform:  scaleX(1.00) scaleY(1.00) ;
  }
  25% {
    opacity:1;
    -moz-transform:  scaleX(0.95) scaleY(0.95) ;
  }
  50% {
    opacity:1;
    -moz-transform:  scaleX(1.10) scaleY(1.10) ;
  }
  100% {
    opacity:0;
    -moz-transform:  scaleX(0.30) scaleY(0.30) ;
  }
}

@-webkit-keyframes bounceOutAnim {
  0% {
    opacity:1;
    -webkit-transform:  scaleX(1.00) scaleY(1.00) ;
  }
  25% {
    opacity:1;
    -webkit-transform:  scaleX(0.95) scaleY(0.95) ;
  }
  50% {
    opacity:1;
    -webkit-transform:  scaleX(1.10) scaleY(1.10) ;
  }
  100% {
    opacity:0;
    -webkit-transform:  scaleX(0.30) scaleY(0.30) ;
  }
}

@-o-keyframes bounceOutAnim {
  0% {
    opacity:1;
    -o-transform:  scaleX(1.00) scaleY(1.00) ;
  }
  25% {
    opacity:1;
    -o-transform:  scaleX(0.95) scaleY(0.95) ;
  }
  50% {
    opacity:1;
    -o-transform:  scaleX(1.10) scaleY(1.10) ;
  }
  100% {
    opacity:0;
    -o-transform:  scaleX(0.30) scaleY(0.30) ;
  }
}

@-ms-keyframes bounceOutAnim {
  0% {
    opacity:1;
    -ms-transform:  scaleX(1.00) scaleY(1.00) ;
  }
  25% {
    opacity:1;
    -ms-transform:  scaleX(0.95) scaleY(0.95) ;
  }
  50% {
    opacity:1;
    -ms-transform:  scaleX(1.10) scaleY(1.10) ;
  }
  100% {
    opacity:0;
    -ms-transform:  scaleX(0.30) scaleY(0.30) ;
  }
}

// Bounce Left
.bounceLeft {
  animation: bounceLeftAnim ease 1s;
  animation-iteration-count: 1;
  transform-origin: 50% 50%;
  animation-fill-mode:forwards; /*when the spec is finished*/
  -webkit-animation: bounceLeftAnim ease 1s;
  -webkit-animation-iteration-count: 1;
  -webkit-transform-origin: 50% 50%;
  -webkit-animation-fill-mode:forwards; /*Chrome 16+, Safari 4+*/ 
  -moz-animation: bounceLeftAnim ease 1s;
  -moz-animation-iteration-count: 1;
  -moz-transform-origin: 50% 50%;
  -moz-animation-fill-mode:forwards; /*FF 5+*/
  -o-animation: bounceLeftAnim ease 1s;
  -o-animation-iteration-count: 1;
  -o-transform-origin: 50% 50%;
  -o-animation-fill-mode:forwards; /*Not implemented yet*/
  -ms-animation: bounceLeftAnim ease 1s;
  -ms-animation-iteration-count: 1;
  -ms-transform-origin: 50% 50%;
  -ms-animation-fill-mode:forwards; /*IE 10+*/
}

@keyframes bounceLeftAnim{
  0% {
    opacity:0;
    transform:  translate(-1500px,0px)  rotate(0deg) scaleX(1.00) skewX(0deg) ;
  }
  60% {
    opacity:1;
    transform:  translate(30px,0px)  rotate(NaNdeg) scaleX(1.01) skewX(28deg) ;
  }
  80% {
    transform:  translate(-10px,0px)  skewX(0deg) ;
  }
  100% {
    opacity:1;
    transform:  translate(0px,0px)  rotate(NaNdeg) scaleX(1.01) skewX(0deg) ;
  }
}

@-moz-keyframes bounceLeftAnim{
  0% {
    opacity:0;
    -moz-transform:  translate(-1500px,0px)  rotate(0deg) scaleX(1.00) skewX(0deg) ;
  }
  60% {
    opacity:1;
    -moz-transform:  translate(30px,0px)  rotate(NaNdeg) scaleX(1.01) skewX(28deg) ;
  }
  80% {
    -moz-transform:  translate(-10px,0px)  skewX(0deg) ;
  }
  100% {
    opacity:1;
    -moz-transform:  translate(0px,0px)  rotate(NaNdeg) scaleX(1.01) skewX(0deg) ;
  }
}

@-webkit-keyframes bounceLeftAnim {
  0% {
    opacity:0;
    -webkit-transform:  translate(-1500px,0px)  rotate(0deg) scaleX(1.00) skewX(0deg) ;
  }
  60% {
    opacity:1;
    -webkit-transform:  translate(30px,0px)  rotate(NaNdeg) scaleX(1.01) skewX(28deg) ;
  }
  80% {
    -webkit-transform:  translate(-10px,0px)  skewX(0deg) ;
  }
  100% {
    opacity:1;
    -webkit-transform:  translate(0px,0px)  rotate(NaNdeg) scaleX(1.01) skewX(0deg) ;
  }
}

@-o-keyframes bounceLeftAnim {
  0% {
    opacity:0;
    -o-transform:  translate(-1500px,0px)  rotate(0deg) scaleX(1.00) skewX(0deg) ;
  }
  60% {
    opacity:1;
    -o-transform:  translate(30px,0px)  rotate(NaNdeg) scaleX(1.01) skewX(28deg) ;
  }
  80% {
    -o-transform:  translate(-10px,0px)  skewX(0deg) ;
  }
  100% {
    opacity:1;
    -o-transform:  translate(0px,0px)  rotate(NaNdeg) scaleX(1.01) skewX(0deg) ;
  }
}

@-ms-keyframes bounceLeftAnim {
  0% {
    opacity:0;
    -ms-transform:  translate(-1500px,0px)  rotate(0deg) scaleX(1.00) skewX(0deg) ;
  }
  60% {
    opacity:1;
    -ms-transform:  translate(30px,0px)  rotate(NaNdeg) scaleX(1.01) skewX(28deg) ;
  }
  80% {
    -ms-transform:  translate(-10px,0px)  skewX(0deg) ;
  }
  100% {
    opacity:1;
    -ms-transform:  translate(0px,0px)  rotate(NaNdeg) scaleX(1.01) skewX(0deg) ;
  }
}

// Bounce Right
.bounceRight {
  animation: bounceRightAnim ease 1s;
  animation-iteration-count: 1;
  transform-origin: 50% 50%;
  animation-fill-mode:forwards; /*when the spec is finished*/
  -webkit-animation: bounceRightAnim ease 1s;
  -webkit-animation-iteration-count: 1;
  -webkit-transform-origin: 50% 50%;
  -webkit-animation-fill-mode:forwards; /*Chrome 16+, Safari 4+*/ 
  -moz-animation: bounceRightAnim ease 1s;
  -moz-animation-iteration-count: 1;
  -moz-transform-origin: 50% 50%;
  -moz-animation-fill-mode:forwards; /*FF 5+*/
  -o-animation: bounceRightAnim ease 1s;
  -o-animation-iteration-count: 1;
  -o-transform-origin: 50% 50%;
  -o-animation-fill-mode:forwards; /*Not implemented yet*/
  -ms-animation: bounceRightAnim ease 1s;
  -ms-animation-iteration-count: 1;
  -ms-transform-origin: 50% 50%;
  -ms-animation-fill-mode:forwards; /*IE 10+*/
}

@keyframes bounceRightAnim{
  0% {
    opacity:0;
    transform:  translate(500px,0px)  rotate(0deg) scaleX(1.00) skewX(0deg) ;
  }
  60% {
    opacity:1;
    transform:  translate(30px,0px)  rotate(NaNdeg) scaleX(1.01) skewX(28deg) ;
  }
  80% {
    transform:  translate(10px,0px)  skewX(0deg) ;
  }
  100% {
    opacity:1;
    transform:  translate(0px,0px)  rotate(NaNdeg) scaleX(1.01) skewX(0deg) ;
  }
}

@-moz-keyframes bounceRightAnim{
  0% {
    opacity:0;
    -moz-transform:  translate(500px,0px)  rotate(0deg) scaleX(1.00) skewX(0deg) ;
  }
  60% {
    opacity:1;
    -moz-transform:  translate(30px,0px)  rotate(NaNdeg) scaleX(1.01) skewX(28deg) ;
  }
  80% {
    -moz-transform:  translate(10px,0px)  skewX(0deg) ;
  }
  100% {
    opacity:1;
    -moz-transform:  translate(0px,0px)  rotate(NaNdeg) scaleX(1.01) skewX(0deg) ;
  }
}

@-webkit-keyframes bounceRightAnim {
  0% {
    opacity:0;
    -webkit-transform:  translate(500px,0px)  rotate(0deg) scaleX(1.00) skewX(0deg) ;
  }
  60% {
    opacity:1;
    -webkit-transform:  translate(30px,0px)  rotate(NaNdeg) scaleX(1.01) skewX(28deg) ;
  }
  80% {
    -webkit-transform:  translate(10px,0px)  skewX(0deg) ;
  }
  100% {
    opacity:1;
    -webkit-transform:  translate(0px,0px)  rotate(NaNdeg) scaleX(1.01) skewX(0deg) ;
  }
}

@-o-keyframes bounceRightAnim {
  0% {
    opacity:0;
    -o-transform:  translate(500px,0px)  rotate(0deg) scaleX(1.00) skewX(0deg) ;
  }
  60% {
    opacity:1;
    -o-transform:  translate(30px,0px)  rotate(NaNdeg) scaleX(1.01) skewX(28deg) ;
  }
  80% {
    -o-transform:  translate(10px,0px)  skewX(0deg) ;
  }
  100% {
    opacity:1;
    -o-transform:  translate(0px,0px)  rotate(NaNdeg) scaleX(1.01) skewX(0deg) ;
  }
}

@-ms-keyframes bounceRightAnim {
  0% {
    opacity:0;
    -ms-transform:  translate(500px,0px)  rotate(0deg) scaleX(1.00) skewX(0deg) ;
  }
  60% {
    opacity:1;
    -ms-transform:  translate(30px,0px)  rotate(NaNdeg) scaleX(1.01) skewX(28deg) ;
  }
  80% {
    -ms-transform:  translate(10px,0px)  skewX(0deg) ;
  }
  100% {
    opacity:1;
    -ms-transform:  translate(0px,0px)  rotate(NaNdeg) scaleX(1.01) skewX(0deg) ;
  }
}

// BounceLeftOut
.bounceLeftOut {
  animation: bounceLeftOutAnim ease 1s;
  animation-iteration-count: 1;
  transform-origin: 50% 50%;
  animation-fill-mode:forwards; /*when the spec is finished*/
  -webkit-animation: bounceLeftOutAnim ease 1s;
  -webkit-animation-iteration-count: 1;
  -webkit-transform-origin: 50% 50%;
  -webkit-animation-fill-mode:forwards; /*Chrome 16+, Safari 4+*/ 
  -moz-animation: bounceLeftOutAnim ease 1s;
  -moz-animation-iteration-count: 1;
  -moz-transform-origin: 50% 50%;
  -moz-animation-fill-mode:forwards; /*FF 5+*/
  -o-animation: bounceLeftOutAnim ease 1s;
  -o-animation-iteration-count: 1;
  -o-transform-origin: 50% 50%;
  -o-animation-fill-mode:forwards; /*Not implemented yet*/
  -ms-animation: bounceLeftOutAnim ease 1s;
  -ms-animation-iteration-count: 1;
  -ms-transform-origin: 50% 50%;
  -ms-animation-fill-mode:forwards; /*IE 10+*/
}

@keyframes bounceLeftOutAnim{
  0% {
    opacity:1;
    transform:  translate(0px,0px)  ;
  }
  20% {
    opacity:1;
    transform:  translate(20px,0px)  ;
  }
  100% {
    opacity:0;
    transform:  translate(-1000px,0px)  ;
  }
}

@-moz-keyframes bounceLeftOutAnim{
  0% {
    opacity:1;
    -moz-transform:  translate(0px,0px)  ;
  }
  20% {
    opacity:1;
    -moz-transform:  translate(20px,0px)  ;
  }
  100% {
    opacity:0;
    -moz-transform:  translate(-1000px,0px)  ;
  }
}

@-webkit-keyframes bounceLeftOutAnim {
  0% {
    opacity:1;
    -webkit-transform:  translate(0px,0px)  ;
  }
  20% {
    opacity:1;
    -webkit-transform:  translate(20px,0px)  ;
  }
  100% {
    opacity:0;
    -webkit-transform:  translate(-1000px,0px)  ;
  }
}

@-o-keyframes bounceLeftOutAnim {
  0% {
    opacity:1;
    -o-transform:  translate(0px,0px)  ;
  }
  20% {
    opacity:1;
    -o-transform:  translate(20px,0px)  ;
  }
  100% {
    opacity:0;
    -o-transform:  translate(-1000px,0px)  ;
  }
}

@-ms-keyframes bounceLeftOutAnim {
  0% {
    opacity:1;
    -ms-transform:  translate(0px,0px)  ;
  }
  20% {
    opacity:1;
    -ms-transform:  translate(20px,0px)  ;
  }
  100% {
    opacity:0;
    -ms-transform:  translate(-1000px,0px)  ;
  }
}

// Bounce Right Out
.bounceRightOut {
  animation: bounceRightOutAnim ease 1s;
  animation-iteration-count: 1;
  transform-origin: 50% 50%;
  animation-fill-mode:forwards; /*when the spec is finished*/
  -webkit-animation: bounceRightOutAnim ease 1s;
  -webkit-animation-iteration-count: 1;
  -webkit-transform-origin: 50% 50%;
  -webkit-animation-fill-mode:forwards; /*Chrome 16+, Safari 4+*/ 
  -moz-animation: bounceRightOutAnim ease 1s;
  -moz-animation-iteration-count: 1;
  -moz-transform-origin: 50% 50%;
  -moz-animation-fill-mode:forwards; /*FF 5+*/
  -o-animation: bounceRightOutAnim ease 1s;
  -o-animation-iteration-count: 1;
  -o-transform-origin: 50% 50%;
  -o-animation-fill-mode:forwards; /*Not implemented yet*/
  -ms-animation: bounceRightOutAnim ease 1s;
  -ms-animation-iteration-count: 1;
  -ms-transform-origin: 50% 50%;
  -ms-animation-fill-mode:forwards; /*IE 10+*/
}

@keyframes bounceRightOutAnim{
  0% {
    opacity:1;
    transform:  translate(0px,0px)  ;
  }
  20% {
    opacity:1;
    transform:  translate(-20px,0px)  ;
  }
  100% {
    opacity:0;
    transform:  translate(1000px,0px)  ;
  }
}

@-moz-keyframes bounceRightOutAnim{
  0% {
    opacity:1;
    -moz-transform:  translate(0px,0px)  ;
  }
  20% {
    opacity:1;
    -moz-transform:  translate(-20px,0px)  ;
  }
  100% {
    opacity:0;
    -moz-transform:  translate(1000px,0px)  ;
  }
}

@-webkit-keyframes bounceRightOutAnim {
  0% {
    opacity:1;
    -webkit-transform:  translate(0px,0px)  ;
  }
  20% {
    opacity:1;
    -webkit-transform:  translate(-20px,0px)  ;
  }
  100% {
    opacity:0;
    -webkit-transform:  translate(1000px,0px)  ;
  }
}

@-o-keyframes bounceRightOutAnim {
  0% {
    opacity:1;
    -o-transform:  translate(0px,0px)  ;
  }
  20% {
    opacity:1;
    -o-transform:  translate(-20px,0px)  ;
  }
  100% {
    opacity:0;
    -o-transform:  translate(1000px,0px)  ;
  }
}

@-ms-keyframes bounceRightOutAnim {
  0% {
    opacity:1;
    -ms-transform:  translate(0px,0px)  ;
  }
  20% {
    opacity:1;
    -ms-transform:  translate(-20px,0px)  ;
  }
  100% {
    opacity:0;
    -ms-transform:  translate(1000px,0px)  ;
  }
}